package co.com.inventarios.logica;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.util.Date;
import java.util.List;

import org.hibernate.Session;

import co.com.inventarios.modelo.Bodega;
import co.com.inventarios.modelo.Dlluser;
import co.com.inventarios.modelo.Label;
import co.com.inventarios.modelo.Mngcco;
import co.com.inventarios.modelo.Mngdoc;
import co.com.inventarios.modelo.MngdocId;
import co.com.inventarios.modelo.MngdocWork;
import co.com.inventarios.modelo.Mngmcn;
import co.com.inventarios.modelo.MngmcnId;
import co.com.inventarios.modelo.MngmcnWork;
import co.com.inventarios.modelo.Mngmcnsn;
import co.com.inventarios.modelo.MngmcnsnId;
import co.com.inventarios.modelo.Mngtdc;
import co.com.inventarios.modelo.MngtdcId;
import co.com.inventarios.modelo.Producto;
import co.com.inventarios.modelo.RequiDoc;
import co.com.inventarios.modelo.RequiDocId;
import co.com.inventarios.modelo.RequiDocWork;
import co.com.inventarios.modelo.RequiPro;
import co.com.inventarios.modelo.RequiProId;
import co.com.inventarios.modelo.RequiProWork;
import co.com.inventarios.persistencia.QueryBodegaDAO;
import co.com.inventarios.persistencia.QueryMngdocDAO;
import co.com.inventarios.persistencia.QueryMngmcnDAO;
import co.com.inventarios.persistencia.QueryMngmcnsnDAO;
import co.com.inventarios.utils.HibernateSessionFactory;

public interface ITrasladoLogica {

	
	//proced_Agregar_movtraslado  Elim?
	//proced_Agregar_movtrasladoList  Elim?
	
	
	public int procedimiento(String producto, String bodega, int cantidad,
			String tipo, int retorno);
	
	public String grabar_Mngmcn(Mngmcn Entrada ,Mngmcn Salida  ) throws Exception;
	
	public Bodega consultarBodegahija(String bodegap, String bodegah)
	throws Exception;
	
	public String proced_Agregar_movtraslado(String empresa, String clase,
			String vinkey, String tipodoc, Double numedoc, int reg,
			String cuenta, String tipomov, String ccosto, String bodega,
			String producto, Double cantidad, String unidad, String catal,
			Double parcial, String refemp, String refclase, String reftipo,
			Double refnum, int refreg,String user) throws Exception;
	
	public String proced_Agregar_movtrasladoList(String empresa, String clase,
			String vinkey, String tipodoc, Double numedoc, int reg,
			String cuenta, String tipomov, String ccosto, String bodega,
			String producto, Double cantidad, String unidad, String catal,
			Double parcial, String refemp, String refclase, String reftipo,
			Double refnum, int refreg,String user) throws Exception;
		
	public List<Mngdoc> consultarMngdocProperty_Entradas(String clase, String tipo,
			String propiedad, String valor, String bodegas) throws Exception;
	
	public String grabar_Mngmcn_Series(Mngmcn Salida, Mngmcn Entrada,List<Mngcco> listseries,
			MngmcnsnId MiMngmcnsn_consId) throws Exception;
	
	public List<Mngmcn> buscarDetalle_All(String empresa, String clase,
			String tipo, String numero) throws Exception ;

	public List<Mngdoc> buscarTodosMngDoc_Entradas(String clase, String tipo,
			String value, String bodegas) throws Exception;
	
	
	public List<Mngdoc> consultarMngdocProperty_confirm(String propiedad, String valor,
			int estado, String bodegas) throws Exception;
	
	public Bodega consultarBodega_Confirma(String codigo)
	throws Exception;
	
	public void eliminar_MngmcnEnt(MngmcnId detalle) throws Exception;
	
	public Double consultar_existencia(String producto,String Bodega)
	throws Exception;
	
	public List<Bodega> findByBodega_hijaList(String bodegap,String propertyName, String value) throws Exception;
	
	public List<Mngmcnsn> consultarSeriesfindBy_all_Ing(MngmcnId Id) throws Exception;
	
	public List<Bodega> findByBodega_hijaListAll(String bodegap) throws Exception;

	public String grabar_Mngdoc_new(Mngdoc Registro) throws Exception;
	
	public String quitar_movtraslado(String empresa, String clase,
			String vinkey, String tipodoc, Double numedoc, int reg);

	public String Cambio_Estado_Doc(String empresa, String clase,
			String vinkey, String tipodoc, Double numedoc,String bodega, int estado);
	
	public List<Mngmcn> buscar_inv_Kardex(String empresa,String bodega, String producto,
			String fechabusca, String fechabusca_fin,String propiedad,String valor) throws Exception;
	
	public Producto consultarDetalle(String codigo)
	throws Exception;
	
	public void Actualiza_Requidoc(RequiProWork[] listaWork) throws Exception;
	
	public Bodega consultarBodega(String codigo,String autorizadas) throws Exception;
	
	public List<Bodega> consultarBodegaLike(String propiedad, String valor, String autorizadas)
	throws Exception;
	
	public void eliminar_Mngmcn(MngmcnId detalle) throws Exception;
	
	public  Double  buscar_inv_Kardex_cantini(String empresa,String bodega, String producto,
			String fechabusca) throws Exception;
	
	public Double buscardetalleId(String empresa, String clase , String tipo, Double numero ) throws Exception;
	
	public void actualiza_reqpro(RequiPro requiproact)
	throws Exception ;
	
	public void grabar_Mngdoc(Mngdoc Registro) throws Exception;
	
	public List<Bodega> buscarBodegas_Aut(String buscar) throws Exception;
	
	public List<Mngtdc> buscarDocument_Aut(String buscar,String clase) throws Exception;
	
	public Dlluser consultarRequiUser(String usuario)
	throws Exception;
	
	public String guardarListaMngmcn(RequiProWork[] listaWork,String bempresa,String bclase,String btipo,String bnumero) throws Exception;
	
	public void grabaconsecutivo(MngtdcId Registro,String numero) throws Exception;
	
	public List<Mngdoc> consultarMngdocProperty(String clase, String tipo,
			String propiedad, String valor, String usuario) throws Exception;
	
	public List<Mngdoc> buscarTodosMngDoc(String clase,String tipo,String value,String bodegas) throws Exception;
	
	public MngdocWork[] findmngDocSelectedRow(List<Mngdoc> lista) throws Exception;
	
	public void grabar_Mngmcn_Nobegin(Mngmcn Salida, Mngmcn Entrada) throws Exception;
	
	public MngmcnWork[] findMngmcnSelectedRow(List<Mngmcn> lista) throws Exception;
	
	public Mngdoc consultarMngDoc(String propiedad, MngdocId valor)
	throws Exception;
	
	public Label consultarlabel(Long codigo)throws Exception;
	
	public List<Mngmcn> buscarDetalle(String empresa, String clase , String tipo, String numero ) throws Exception;
	
	public Double MngDocnum_Id(String clase , String tipo) throws Exception;
	
	public List<Producto> consultarProductosLike(String propiedad, String valor)
	throws Exception ;
	
	public List<Producto> buscarTodosProductos() throws Exception;
	
	public String quitar_movtrasladoSeries(String empresa, String clase,
			String vinkey, String tipodoc, Double numedoc, int reg);
	
	public String importarArchivo(String url);
	
}
